// 通用函数
import useClipboard from 'vue-clipboard3';
import { ElMessage } from 'element-plus';
import { formatDate } from '/@/utils/formatTime';
const { toClipboard } = useClipboard();

// 百分比格式化
export function percentFormat(row: EmptyArrayType, column: number, cellValue: string) {
	return cellValue ? `${cellValue}%` : '-';
}
// 列表日期时间格式化
export function dateFormatYMD(row: EmptyArrayType, column: number, cellValue: string) {
	if (!cellValue) return '-';
	return formatDate(new Date(cellValue), 'YYYY-mm-dd');
}
// 列表日期时间格式化
export function dateFormatYMDHMS(row: EmptyArrayType, column: number, cellValue: string) {
	if (!cellValue) return '-';
	return formatDate(new Date(cellValue), 'YYYY-mm-dd HH:MM:SS');
}
// 列表日期时间格式化
export function dateFormatHMS(row: EmptyArrayType, column: number, cellValue: string) {
	if (!cellValue) return '-';
	let time = 0;
	if (typeof row === 'number') time = row;
	if (typeof cellValue === 'number') time = cellValue;
	return formatDate(new Date(time * 1000), 'HH:MM:SS');
}
// 小数格式化
export function scaleFormat(value: string = '0', scale: number = 4) {
	return Number.parseFloat(value).toFixed(scale);
}
// 小数格式化
export function scale2Format(value: string = '0') {
	return Number.parseFloat(value).toFixed(2);
}
// 分转元
export function fenToYuan(amount: string | number = 0): any {
	if (isNaN(Number(amount))) {
		return amount;
	}
	return (Number(amount) / 100).toFixed(2); // 保留两位小数
}

// 万 百万 千万 亿
export function moneyFormat(amount: string | number = 0): any {
	let money = fenToYuan(amount);
	if (money >= 100000000) {
		money = `${(money / 100000000).toFixed(2)}亿`;
	} else if (money >= 10000000) {
		money = `${(money / 10000000).toFixed(2)}千万`;
	} else if (money >= 1000000) {
		money = `${(money / 1000000).toFixed(2)}百万`;
	} else if (money >= 10000) {
		money = `${(money / 10000).toFixed(2)}万`;
	}
	return money.replace('.00', '');
}
// 点击复制文本
export function copyText(text: string) {
	return new Promise((resolve, reject) => {
		try {
			//复制
			toClipboard(text);
			//下面可以设置复制成功的提示框等操作
			ElMessage.success('复制成功');
			resolve(text);
		} catch (e) {
			//复制失败
			ElMessage.error('复制失败');
			reject(e);
		}
	});
}

// 手机号加密
export function encryptPhoneNumber(phone: string) {
	if (!phone) return;
	return phone.replace(/(\d{3}|[\d\-]{4})[\d]{4}(\d{4})/, '$1****$2');
}
